extract变量覆盖

extract变量覆盖

50

http://123.206.87.240:9009/1.php <?php $flag='xxx';

extract($_GET); if(isset($shiyan)) { $content=trim(file_get_contents($flag)); if($shiyan==$content) { echo'flag{xxx}'; } else { echo'Oh.no'; } } ?>

1.代码审计

extract()函数从数组中将变量导入到当前的符号表,该函数使用数组键名作为变量名,使用数组键值作为变量值;

isset()函数判断是否存在变量$shiyan;trim()函数移除字符串两侧的空白字符或其他预定义字符 ,这里是移除字符串两侧的空格;

file_get_contents()函数将整个文件读入一个字符串;假如$shiyan的值等于文件的内容($content)时,就打印出flag

trim()移除字符串两侧的字符("Hello" 中的 "He" 以及 "World" 中的 "d!"):

抱着尝试的心理 传入一个 shiyan

http://123.206.87.240:9009/1.php?shiyan

直接得到 flag{bugku-dmsj-p2sm3N}

By 吾空 发布            此页面修订于: 2019-05-23 17:43:15

results matching ""

    No results matching ""